The present invention relates to data storage systems.
A data storage system allows one or more client devices to access (i.e., read and/or write) data on the data storage system through a host device, such as a file server, that is physically separate from the client. The clients typically communicate with the host over a network, such as a local area network, wide area network, virtual private network, or point-to-point connection. The host typically is connected to one or more storage devices (e.g., arrays of disks, tapes, or solid-state memory) directly or over a network, such as a storage area network (SAN). Some data storage systems include two or more hosts, each of which can access the storage devices. Examples of data storage systems include the FAS900 and FAS200 families of fabric-attached storage systems, which are available from Network Appliance, Incorporated of Sunnyvale, Calif.
Each host typically runs an operating system that includes a file system. An example of a suitable operating system for a host is the Data ONTAP™ microkernel operating system available from Network Appliance, Incorporated. The file system organizes data on the storage devices, typically using structured directories that contain files. An example of a file system is the Write Anywhere File Layout (WAFL®) file system available from Network Appliance, Incorporated, and described in commonly assigned U.S. Pat. No. 6,289,356, entitled “Write Anywhere File System Layout,” which is hereby incorporated by reference in its entirety. The WAFL file system is optimized to work in a data storage system that uses a Redundant Array of Independent (or Inexpensive) Disks (RAID) design, which helps protect against data loss in the event of a disk failure. In a RAID 4 system, for example, data is striped across multiple disks and is protected by parity information. If a disk in the array of disks fails, the parity information can be used to recover the lost data from the failed disk.
The disks in a disk array can be, for example, Small Computer System Interface (SCSI) disks. The disks typically are installed in one or more enclosures, each of which contains multiple disks and associated support elements. An example of an enclosure is a box, shelf, rack, or set of these that provides power, cooling, mechanical protection, and external electronic interfaces for one or more enclosure devices. Possible enclosure devices include SCSI devices, such as SCSI disk drives, and non-SCSI devices. SCSI Enclosure Services (SES) can be used to manage and sense the state of elements (e.g., power supplies, cooling fans, and data storage disks) in an enclosure. An enclosure typically includes a plug-in SES device or an integrated SES device that allows a host to access SES services. In some systems, a host can directly access the SES device. In other systems, a host accesses the SES device through an SES path device. For example, an enclosure containing SCSI disks can include a limited number of device slots (e.g., 2 or 4 slots) that allow the SCSI disks located in those slots to operate as SES path devices. SES path devices pass information between the enclosure's SES device and the host, typically by interfacing between an SES bus and a bus (e.g., a fibre channel bus) that connects the SES path device to the host. More information about SES can be found in the ANSI document INCITS 305-1998 (R2003), “Information Technology—SCSI-3 Enclosure Services (SES) Command Set.”
Examples of operations that can be performed on an enclosure using SES include detecting the presence or absence of disks in slots, obtaining ambient temperature readings, setting allowable temperature thresholds for the enclosure, and setting or clearing disk status lights. These and similar sensing (that is, detecting) and managing operations are performed by reading SES configuration pages, enclosure status pages, or element descriptor pages and by writing SES enclosure control pages using the SES SEND DIAGNOSTIC and RECEIVE DIAGNOSTIC RESULTS commands.
In a fibre-channel storage system, each disk in an enclosure can be owned by a single host. A host is said to own a disk if the configuration of the storage system allows the host to perform certain operations (e.g., writes) on the disk that other hosts are restricted from performing on that disk. In a clustered-host system, multiple hosts are connected to a common set of disks, and multiple hosts can own disks in a single enclosure. In a two-host system, every disk can be connected to both hosts because each disk typically includes two fibre-channel connections. In a system with more than two hosts, a disk can be connected to multiple hosts through a switch. One host can own a given disk, or the disk can be unowned. Disk ownership can be handled in software to allow the ownership of a disk to be changed without requiring a change in the physical connections between the hosts and the disk. A host that owns a disk typically can place a reservation (e.g., a SCSI reservation, SCSI persistent reservation, or non-SCSI reservation) on the disk. A reserved disk typically enforces the reservation to block hosts other than the reserving host from performing certain operations using the disk. For example, a disk with a SCSI persistent reservation from one host will allow another host to read data from the disk, but the disk does not allow any other host to write data to the disk, thus preventing rogue writes if a software anomaly occurs on another host. A side effect of the persistent reservation is that only the host that owns a disk which is an SES path device (an SES path disk) can use the SES path disk to access SES functions; other hosts are blocked from accessing SES functions using the SES path disk.
It is useful for a host that owns one or more disks in an enclosure to be able to sense and manage the state of elements in the enclosure. The host can do this if the host owns an operational SES path disk in the enclosure or if an SES path disk in the enclosure is unowned. If, however other hosts own all SES path disks, the host cannot access SES functions.
One possible solution is to constrain a system administrator to use only configurations in which a host that owns any disk in an enclosure owns at least one SES path disk in the enclosure. This solution decreases the flexibility of configuring the enclosure and assigning ownership. In addition, if the SES path disk that the host owns fails, the host may lose the ability to access SES services for the enclosure.